using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CollectibleCard")]
	public class CollectibleCard : MonoClass
	{
		public int m_CardDbId => method_2<int>("m_CardDbId");

		public DateTime m_LatestInsertDate => method_2<DateTime>("m_LatestInsertDate");

		public string m_LongSearchableName => method_4("m_LongSearchableName");

		public string m_LongSearchableNameNonEuropean => method_4("m_LongSearchableNameNonEuropean");

		public string m_LongSearchableNameNoDiacritics => method_4("m_LongSearchableNameNoDiacritics");

		public EntityDef m_EntityDef => method_3<EntityDef>("m_EntityDef");

		public TAG_PREMIUM m_PremiumType => method_2<TAG_PREMIUM>("m_PremiumType");

		public CardDbfRecord m_CardRecord => method_3<CardDbfRecord>("m_CardRecord");

		public int CardDbId => method_11<int>("get_CardDbId", Array.Empty<object>());

		public string CardId => method_13("get_CardId");

		public string Name => method_13("get_Name");

		public string CardInHandText => method_13("get_CardInHandText");

		public string ArtistName => method_13("get_ArtistName");

		public int ManaCost => method_11<int>("get_ManaCost", Array.Empty<object>());

		public int Attack => method_11<int>("get_Attack", Array.Empty<object>());

		public int Health => method_11<int>("get_Health", Array.Empty<object>());

		public TAG_CARD_SET Set => method_11<TAG_CARD_SET>("get_Set", Array.Empty<object>());

		public TAG_CLASS Class => method_11<TAG_CLASS>("get_Class", Array.Empty<object>());

		public TAG_MULTI_CLASS_GROUP MultiClassGroup => method_11<TAG_MULTI_CLASS_GROUP>("get_MultiClassGroup", Array.Empty<object>());

		public TAG_RARITY Rarity => method_11<TAG_RARITY>("get_Rarity", Array.Empty<object>());

		public TAG_RACE Race => method_11<TAG_RACE>("get_Race", Array.Empty<object>());

		public TAG_CARDTYPE CardType => method_11<TAG_CARDTYPE>("get_CardType", Array.Empty<object>());

		public bool IsHeroSkin => method_11<bool>("get_IsHeroSkin", Array.Empty<object>());

		public TAG_PREMIUM PremiumType => method_11<TAG_PREMIUM>("get_PremiumType", Array.Empty<object>());

		public int SeenCount => method_11<int>("get_SeenCount", Array.Empty<object>());

		public int OwnedCount => method_11<int>("get_OwnedCount", Array.Empty<object>());

		public int DisenchantCount => method_11<int>("get_DisenchantCount", Array.Empty<object>());

		public int DefaultMaxCopiesPerDeck => method_11<int>("get_DefaultMaxCopiesPerDeck", Array.Empty<object>());

		public int CraftBuyCost => method_11<int>("get_CraftBuyCost", Array.Empty<object>());

		public int CraftSellCost => method_11<int>("get_CraftSellCost", Array.Empty<object>());

		public bool IsCraftable => method_11<bool>("get_IsCraftable", Array.Empty<object>());

		public bool IsNewCard => method_11<bool>("get_IsNewCard", Array.Empty<object>());

		public int SuggestWeight => method_11<int>("get_SuggestWeight", Array.Empty<object>());

		public bool IsManaCostChanged => method_11<bool>("get_IsManaCostChanged", Array.Empty<object>());

		public bool IsHealthChanged => method_11<bool>("get_IsHealthChanged", Array.Empty<object>());

		public bool IsAttackChanged => method_11<bool>("get_IsAttackChanged", Array.Empty<object>());

		public bool IsCardInHandTextChanged => method_11<bool>("get_IsCardInHandTextChanged", Array.Empty<object>());

		public int ChangeVersion => method_11<int>("get_ChangeVersion", Array.Empty<object>());

		public DateTime LatestInsertDate => method_11<DateTime>("get_LatestInsertDate", Array.Empty<object>());

		public CollectibleCard(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CollectibleCard(IntPtr address)
			: this(address, "CollectibleCard")
		{
		}

		public static bool FindTextInternational(string searchStr, string stringToSearch)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "CollectibleCard", "FindTextInternational", new object[2] { searchStr, stringToSearch });
		}

		public bool FindTextInCard(string searchStr)
		{
			return method_11<bool>("FindTextInCard", new object[1] { searchStr });
		}

		public void AddCounts(int addOwnedCount, int addSeenCount, DateTime latestInsertDate)
		{
			method_8("AddCounts", addOwnedCount, addSeenCount, latestInsertDate);
		}

		public void RemoveCounts(int removeOwnedCount)
		{
			method_8("RemoveCounts", removeOwnedCount);
		}

		public EntityDef GetEntityDef()
		{
			return method_14<EntityDef>("GetEntityDef", Array.Empty<object>());
		}

		public new bool Equals(object obj)
		{
			return method_11<bool>("Equals", new object[1] { obj });
		}

		public new int GetHashCode()
		{
			return method_11<int>("GetHashCode", Array.Empty<object>());
		}

		public bool IsCardChanged()
		{
			return method_11<bool>("IsCardChanged", Array.Empty<object>());
		}
	}
}
